package com.diver.flinkdemo.entity.xxt;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.diver.flinkdemo.enums.ChangeRecordStatusEnum;
import com.diver.flinkdemo.utils.excel.ExcelAnnotation;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import lombok.*;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * 2018/11/05
 * Created by Lynn Li.
 */
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "change_record对象", description = "change_record表")
@TableName("change_record")
public class ChangeRecord implements java.io.Serializable {

    // 序列化版本
    private static final long serialVersionUID = -820512972222880000L;

    // 唯一标识 [主键]
//    @TableId(type = IdType.ASSIGN_ID)
    @TableId(type = IdType.UUID)
    private String id;
    // 学校id
    private String schoolId;
    // 学生姓名
    @ExcelAnnotation(exportTitleName = "姓名")
    private String studentName;

    // 学校名称
    @ExcelAnnotation(exportTitleName = "学校")
    private String schoolName;
    // 年级id
    private String gradeId;
    // 年级名称
    @ExcelAnnotation(exportTitleName = "年级")
    private String gradeName;
    // 班级id
    private String classId;
    // 班级名称
    @ExcelAnnotation(exportTitleName = "班级")
    private String className;


    // 身份证
    @ExcelAnnotation(exportTitleName = "身份证号")
    private String idCard;

    // 联系人电话
    @ExcelAnnotation(exportTitleName = "监护人手机号")
    private String contactsPhone;

    // 申请时间
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelAnnotation(exportTitleName = "申请时间", dateTimeFormat = "yyyy-MM-dd HH:mm:ss")
    private Date applyTime;

    // 旧卡-领取日期（年月日时间戳）
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelAnnotation(exportTitleName = "领取日期", dateTimeFormat = "yyyy-MM-dd HH:mm:ss")
    private Date getDate;

    // 补卡申请状态
    /*  0申请已提交，等待审核
        1审核不通过
        2审核通过，学生证定制中
        3学生证定制完成
        4学生证已发放    //1、4都为结束状态
    */
    @ExcelAnnotation(exportTitleName = "状态", mapData = ChangeRecordStatusEnum.class)
    private Integer status;

    // 登录用户id
    private String userId;

    // 学生证id
    private String studentCardId;

    // 卡片类型
    private String cardType;

    // 补卡原因
    private String reason;

    // 补卡详细原因
    private String reasonDesc;

    // 创建时间
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    // 创建人（同登录用户）
    private String createPerson;

    // 更新时间
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    // 更新人
    private String updatePerson;

    // 删除时间
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
//    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date deleteTime;

    // 删除人
    private String deletePerson;

    // 是否删除（0=否，1=是）
    private Integer deleteFlag = 0;

    // 当前状态提示信息（后台配置）
    private String statusHint;

    //走读住校类型
    private String studentType;

}
